package cn.iocoder.an.module.mold.controller.admin.account.vo;


import cn.idev.excel.annotation.ExcelIgnore;
import cn.idev.excel.annotation.ExcelProperty;
import cn.iocoder.an.framework.excel.core.annotations.DictFormat;
import cn.iocoder.an.framework.excel.core.convert.DictConvert;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) //
public class AccountImportExcelVO {
    @ExcelIgnore
    private Long id;

    @Schema(description = "模具名")
    @ExcelProperty("模具名")
    private String name;

    @Schema(description = "编码")
    @ExcelProperty("编码")
    private String code;

    @Schema(description = "图号")
    @ExcelProperty("图号")
    private String drawingNo;

    //图号id
    @ExcelIgnore
    private Long drawingNoId;

    @Schema(description = "客户名")
    @ExcelProperty("客户名")
    private String customer;

    @Schema(description = "模具类型编码")
    @ExcelProperty("模具类型编码")
    private String categoryCode;

    @ExcelIgnore
    private Long categoryId;

    @Schema(description = "部门名称")
    @ExcelProperty("部门名称")
    private String deptName;

    @ExcelIgnore
    private Long deptId;

    @Schema(description = "设备编码")
    @ExcelProperty("设备编码")
    private String devCode;

    @ExcelIgnore
    private Long devId;

    @Schema(description = "总腔数")
    @ExcelProperty("总腔数")
    private Integer totalCavity;

    @Schema(description = "可用腔数")
    @ExcelProperty("可用腔数")
    private Integer availableCavity;

    @Schema(description = "总寿命")
    @ExcelProperty("总寿命")
    private Integer totalUsageCount;

    @Schema(description = "已用寿命")
    @ExcelProperty("已用寿命")
    private Integer usedCount;

    @Schema(description = "预警次数")
    @ExcelProperty("预警次数")
    private Integer warningCount;

    @Schema(description = "延期次数")
    @ExcelProperty("延期次数")
    private Integer delayCount;

    @Schema(description = "仓库编码")
    @ExcelProperty("仓库编码")
    private String warehouseCode;

    @ExcelIgnore
    private Long warehouseId;

    @Schema(description = "储位编码")
    @ExcelProperty("储位编码")
    private String storageCode;

    @ExcelIgnore
    private Long storageId;

    //todo:这里关于bomCategoryId的导入需要等后面联动做了再说
    // private String bomCategoryId;

    @Schema(description = "工步")
    @ExcelProperty("工步")
    private Integer oprationStep;

    @Schema(description = "数量")
    @ExcelProperty("数量")
    private Integer quantity;

    @Schema(description = "保养类型")
    @ExcelProperty("保养类型编码")
    private String upkeepCode;

    @ExcelIgnore
    private Long upkeepId;

    @Schema(description = "上次保养日期")
    @ExcelProperty("上次保养日期")
    private LocalDateTime lastUpkeepTime;

    @Schema(description = "下次保养日期")
    @ExcelProperty("下次保养日期")
    private LocalDateTime nextUpkeepTime;

    @Schema(description = "保养人")
    @ExcelProperty("保养人")
    private String upkeeperName;

    @ExcelIgnore
    private Long upkeeperId;

    @Schema(description = "复检类型")
    @ExcelProperty("复检类型编码")
    private String recheckCode;

    @ExcelIgnore
    private Long recheckId;

    @Schema(description = "上次复检日期")
    @ExcelProperty("上次复检日期")
    private LocalDateTime lastRecheckTime;

    @Schema(description = "下次复检日期")
    @ExcelProperty("下次复检日期")
    private LocalDateTime nextRecheckTime;

    @Schema(description = "复检人")
    @ExcelProperty("复检人")
    private String recheckerName;

    @ExcelIgnore
    private Long recheckerId;

    @ExcelIgnore
    private Long borrowerId;
    @ExcelIgnore
    private LocalDateTime borrowTime;
    @ExcelIgnore
    private Long returnerId;

    @ExcelIgnore
    private LocalDateTime returnTime;

    @Schema(description = "库存状态")
    @ExcelProperty(value = "库存状态", converter = DictConvert.class)
    @DictFormat("mold_inventory_status")
    private Integer inventoryStatus;

    @Schema(description = "使用状态")
    @ExcelProperty(value = "使用状态", converter = DictConvert.class)
    @DictFormat("mold_usage_status")
    private Integer usageStatus;

    @Schema(description = "维修状态")
    @ExcelProperty(value = "维修状态", converter = DictConvert.class)
    @DictFormat("mold_repair_status")
    private Integer repairStatus;

    @Schema(description = "保养状态")
    @ExcelProperty(value = "保养状态", converter = DictConvert.class)
    @DictFormat("mold_upkeep_tobe_status")
    private Integer upkeepStatus;

    @Schema(description = "复检状态")
    @ExcelProperty(value = "复检状态", converter = DictConvert.class)
    @DictFormat("mold_recheck_status")
    private Integer recheckStatus;

    @Schema(description = "描述", example = "你猜")
    @ExcelProperty("描述")
    private String description;

}
